package com.xbongbong.saas.model;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.saas.domain.entity.WorkPlanEntity;

import java.util.List;
import java.util.Map;

/**
 * @author feng.zheng
 * @version v1.0
 * @date 2019/2/12 13:07
 * @since v1.0
 */
public interface WorkPlanModel extends IModel<WorkPlanEntity> {
    /**
     * 工作报告计划数据插入
     *
     * @param entity 工作报告计划实体
     * @return Integer
     * @throws XbbException 异常
     * @author feng.zheng
     * @date 2019-02-12 15:48
     */
    @Override
    Integer insert(WorkPlanEntity entity) throws XbbException;

    /**
     * 工作报告计划数据更新
     *
     * @param entity 工作报告计划实体
     * @return Integer
     * @throws XbbException 异常
     * @author feng.zheng
     * @date 2019-02-12 15:48
     */
    @Override
    Integer update(WorkPlanEntity entity) throws XbbException;

    /**
     * 工作报告计划数据查询多个
     *
     * @param param 参数
     * @return List<WorkReportCcEntity>
     * @throws XbbException 异常
     * @date 2019-02-12 15:48
     */
    @Override
    List<WorkPlanEntity> findEntitys(Map<String, Object> param);

    /**
     * 工作报告计划数据查询条数
     *
     * @param param 参数
     * @return Integer
     * @throws XbbException 异常
     * @date 2019-02-12 15:48
     */
    @Override
    Integer getEntitysCount(Map<String, Object> param);

    /**
     * 工作报告计划数据单条查询
     *
     * @param key    主键ID
     * @param corpid 公司ID
     * @return Integer
     * @throws XbbException 异常
     * @date 2019-02-12 15:48
     */
    WorkPlanEntity getByKey(Long key, String corpid);

    /**
     * 批量更新计划状态
     *
     * @param status   状态
     * @param corpid   公司id
     * @param userId   员工id
     * @param planIdIn 计划id
     * @return 是否成功
     * 2016年12月15日 下午8:08:13
     */
    Integer batchUpdateStatus(Integer status, String corpid, String userId, List<Long> planIdIn);

    /**
     * 编辑content
     *
     * @param corpid  公司id
     * @param planId  计划id
     * @param content 内容
     * @return 是否成功
     * 2016年12月15日 下午9:38:37
     */
    Integer updateContent(String corpid, Long planId, String content);
    /**
     * 批量删除
     * @param corpid
     * @param userId
     * @param planIdIn
     * @return
     * @author long.rao
     * @date 2019-02-18 19:56
     */
    Integer batchDeleteBykey(String corpid, String userId, List<Long> planIdIn);

    /**
     * 批量删除
     * @author 吴峰
     * @date 2019/3/25 15:44
     * @param reportIdIn 报告id
     * @param corpid 公司id
     * @return java.lang.Integer
     */
    Integer deleteByReportIdIn(List<Long> reportIdIn, String corpid);

}
